home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 32 / Mac Magazin and MacEasy Magazine CD - Issue 32.iso / Grafik & Text / OzTeX3.0 / Metafont / Inputs / ec / excspl.mf < prev    next >
Text File  |  1997-03-16  |  11KB  |  248 lines

  1. % excspl.mf
  2. %
  3. % (c) Copyright 1995, 1996, 1997 J"org Knappen
  4. % (c) Copyright 1990, 1992 Norbert Schwarz
  5. %
  6. % This file is part of ecfonts version 1.0
  7. %
  8. % Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
  9. % copyrite.txt for further information
  10. %
  11. % You find some documentation in ecdoc.tex (needs LaTeX2e)
  12. %
  13. % Content:
  14. %
  15. %   Metafont program for the characters in positions of ligatures
  16. %   for the "caps and small caps" fonts
  17. %
  18. %   I,J,FI,FL,FFI,FFL and D with bar
  19. %
  20. version_check(1,0);  % |version_check| was introduced in dc1.3
  21.  
  22. ecchar "The letter I";
  23. beginchar(oct"031",max(6u#,4u#+cap_stem#),cap_height#,0);
  24. italcorr cap_height#*slant-.25u#;
  25. adjust_fit(cap_serif_fit#,cap_serif_fit#);
  26. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  27. lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
  28. filldraw stroke z1e--z2e; % stem
  29. if serifs or slitex or monospace:
  30.  dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut);  % upper serif
  31.  dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut);  fi % lower serif
  32. math_fit(0,.5ic#); penlabels(1,2); endchar;
  33.  
  34. ecchar "The letter J";
  35. beginchar(oct"032",9u#,cap_height#,0);
  36. italcorr cap_height#*slant-cap_serif_fit#
  37.  +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
  38. adjust_fit(0,cap_serif_fit#);
  39. pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
  40. top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
  41. if serifs: pos3(vair,-90); pos4(cap_hair,-180);
  42.  pos5(flare+(cap_stem-stem),-180);
  43.  bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
  44.  filldraw stroke z1e--z2e&super_arc.e(2,3);  % stem and arc
  45.  dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut);  % serif
  46.  pickup tiny.nib; bulb(3,4,5);  % bulb
  47. else: filldraw stroke z1e--z2e;  % stem
  48.  pickup fine.nib; pos3(cap_stem',0); z3=z2;
  49.  pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
  50.  bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
  51.  filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
  52. math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
  53.  
  54. ecchar "The letter FF";
  55. beginchar(oct"033",2(11.5u#-width_adj#),cap_height#,0);
  56. italcorr cap_height#*slant-.25u#;
  57. normal_adjust_fit(cap_serif_fit#,0);
  58. h:=vround(h-stem_corr);
  59. w':=11.5u-width_adj;
  60. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  61. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  62. filldraw stroke z1e--z2e; % stem
  63. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  64. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  65. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  66. pos5(cap_bar,-90); pos6(hair,0);
  67. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  68. pos0(cap_bar,90); pos7(hair,0);
  69. z0=z5; x6=x7; y6-y5l=y0l-y7;
  70. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  71.  rt x9r=hround(w'-.5u);
  72. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  73. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  74. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  75.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  76. % the second F
  77. currentpicture:=currentpicture + currentpicture shifted (w',0);
  78. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  79.  
  80. ecchar "The letter FI";
  81. beginchar(oct"034",11.5u#-width_adj#+max(6u#,4u#+cap_stem#),cap_height#,0);
  82. italcorr cap_height#*slant-.25u#;
  83. normal_adjust_fit(cap_serif_fit#,0);
  84. h:=vround(h-stem_corr);
  85. w':=11.5u-width_adj;
  86. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  87. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  88. filldraw stroke z1e--z2e; % stem
  89. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  90. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  91. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  92. pos5(cap_bar,-90); pos6(hair,0);
  93. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  94. pos0(cap_bar,90); pos7(hair,0);
  95. z0=z5; x6=x7; y6-y5l=y0l-y7;
  96. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  97.  rt x9r=hround(w'-.5u);
  98. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  99. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  100. if serifs:
  101.  nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  102.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  103. % the I
  104. xshift:=w';
  105. w':=w-xshift;
  106. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  107. lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
  108. filldraw stroke z11e--z12e; % stem
  109. if serifs or slitex or monospace:
  110.  dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut);  % upper serif
  111.  dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut);  fi % lower serif
  112. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  113.  
  114. ecchar "The letter FL";
  115. beginchar(oct"035",(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
  116. italcorr cap_height#*slant-.25u#;
  117. normal_adjust_fit(cap_serif_fit#,0);
  118. h:=vround(h-stem_corr);
  119. w':=11.5u-width_adj;
  120. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  121. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  122. filldraw stroke z1e--z2e; % stem
  123. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  124. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  125. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  126. pos5(cap_bar,-90); pos6(hair,0);
  127. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  128. pos0(cap_bar,90); pos7(hair,0);
  129. z0=z5; x6=x7; y6-y5l=y0l-y7;
  130. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  131.  rt x9r=hround(w'-.5u);
  132. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  133. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  134. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  135.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  136. % the L
  137. xshift:=w';
  138. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  139. lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
  140. filldraw stroke z11e--z12e; % stem
  141. pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
  142. bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
  143. arm(13,14,eee,1.2beak_darkness,beak_jut);  % lower arm and beak
  144. if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut);  % upper serif
  145.  nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi  % lower serif
  146. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  147.  
  148.  
  149.  
  150. ecchar "The letter FFI";
  151. beginchar(oct"036",2(11.5u#-width_adj#)+max(6u#,4u#+cap_stem#),cap_height#,0);
  152. italcorr cap_height#*slant-.25u#;
  153. normal_adjust_fit(cap_serif_fit#,0);
  154. h:=vround(h-stem_corr);
  155. w':=11.5u-width_adj;
  156. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  157. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  158. filldraw stroke z1e--z2e; % stem
  159. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  160. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  161. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  162. pos5(cap_bar,-90); pos6(hair,0);
  163. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  164. pos0(cap_bar,90); pos7(hair,0);
  165. z0=z5; x6=x7; y6-y5l=y0l-y7;
  166. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  167.  rt x9r=hround(w'-.5u);
  168. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  169. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  170. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  171.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  172. % the second F
  173. currentpicture:=currentpicture + currentpicture shifted (w',0);
  174. % the I
  175. xshift:=2w';
  176. w':=w-xshift;
  177. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  178. lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
  179. filldraw stroke z11e--z12e; % stem
  180. if serifs or slitex or monospace:
  181.  dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut);  % upper serif
  182.  dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut);  fi % lower serif
  183. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  184.  
  185. ecchar "The letter FFL";
  186. beginchar(oct"037",2(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
  187. italcorr cap_height#*slant-.25u#;
  188. normal_adjust_fit(cap_serif_fit#,0);
  189. h:=vround(h-stem_corr);
  190. w':=11.5u-width_adj;
  191. pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
  192. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
  193. filldraw stroke z1e--z2e; % stem
  194. pickup crisp.nib; pos3(slab,90); pos4(hair,0);
  195. top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
  196. arm(3,4,e,beak_darkness,beak_jut);  % upper arm and beak
  197. pos5(cap_bar,-90); pos6(hair,0);
  198. top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
  199. pos0(cap_bar,90); pos7(hair,0);
  200. z0=z5; x6=x7; y6-y5l=y0l-y7;
  201. if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
  202.  rt x9r=hround(w'-.5u);
  203. else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
  204. arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);  % middle arm and serif
  205. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  206.  dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi  % lower serif
  207. % the I
  208. currentpicture:=currentpicture + currentpicture shifted (w',0);
  209. % the L
  210. xshift:=2w';
  211. pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
  212. lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
  213. filldraw stroke z11e--z12e; % stem
  214. pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
  215. bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
  216. arm(13,14,eee,1.2beak_darkness,beak_jut);  % lower arm and beak
  217. if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut);  % upper serif
  218.  nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi  % lower serif
  219. math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
  220.  
  221.  
  222. ecchar "The small caps letter (Eth) bar D";
  223. beginchar(oct"236",13.5u#,cap_height#,0);
  224. italcorr .7cap_height#*slant-.5u#;
  225. adjust_fit(cap_serif_fit#,0);
  226. pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
  227. lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
  228. filldraw stroke z1e--z2e; % stem
  229. penpos3(cap_band,90); penpos4(cap_band,90);
  230. penpos5(cap_curve-stem_corr,0);
  231. penpos6(cap_band,-90); penpos7(cap_band,-90);
  232. z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
  233. z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
  234. x4l:=x6l:=x4-.25cap_curve;
  235. fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e;  % lobe
  236. if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut);  % upper serif
  237.  nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi  % lower serif
  238. % the bar
  239. pickup tiny.nib;
  240. y8=y9=y5;
  241. pos8(bar,90); pos9(bar,90);
  242. x9=x4;
  243. if serifs:  x8=x2l-cap_jut; else: x8=.5u; fi;
  244. filldraw stroke z8e--z9e;
  245. math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
  246.  
  247. endinput;
  248.